#ifndef __AXON_H__
#define __AXON_H__

#include "std_def.h"
#include "ntype.h"

class axon
{
public:
    axon();
    axon(const ntype::signal_t&, const ntype::signal_t&);
    axon(const axon &);
    virtual ~axon();

    void setFSignal(ntype::signal_t);
    void setBSignal(ntype::signal_t);

    ntype::signal_t getFSignal(void);
    ntype::signal_t getBSignal(void);

    void setFStudySignal(ntype::signalid_t signalid, ntype::signal_t val);
    ntype::signal_t getFStudySignal(ntype::signalid_t signalid = 0) const;

    void setBStudySignal(ntype::signalid_t signalid, ntype::signal_t val);
    ntype::signal_t getBStudySignal(ntype::signalid_t signalid = 0) const;

    ntype::error_t getError(ntype::signalid_t signalid);

protected:
    ntype::signal_t  f_signal;
    ntype::signal_t  b_signal;

    ntype::signal_t  f_signal_study[MAX_STUDY_SIGNAL_BUFFER];
    ntype::signal_t  b_signal_study[MAX_STUDY_SIGNAL_BUFFER];
};


#endif //__AXON_H__
